/*
 * AppCacheKey
 *
 * Creado el 06/05/2009, 05:52:06 PM
 */

package com.unicon.autoservicio.view.bean;


/**
 * 
 * @author Ricardo Rodríguez
 */
public final class AppCacheKey {
   private String codigoUsuario;
   private String codigoPerfil;
   private String codigoProveedor;
   private String key;

   public AppCacheKey(String key, final UsuarioBean usuarioBean){
      codigoUsuario = usuarioBean.getCodigoUsuario();
      codigoPerfil = usuarioBean.getCodigoPerfil();
    
      this.key = key;
   }

      public AppCacheKey(String key){
      codigoUsuario = null;
      codigoPerfil = null;
      codigoProveedor = null;
      this.key = key;
   }

   /**
    * @return the codigoUsuario
    */
   public String getCodigoUsuario() {
      return codigoUsuario;
   }

   /**
    * @return the codigoPerfil
    */
   public String getCodigoPerfil() {
      return codigoPerfil;
   }

   /**
    * @return the codigoProveedor
    */
   public String getCodigoProveedor() {
      return codigoProveedor;
   }

   /**
    * @return the key
    */
   public String getKey() {
      return key;
   }

   @Override
   public int hashCode() {
      int hash = 7;
      hash = 97 * hash + (this.codigoUsuario != null ? this.codigoUsuario.hashCode() : 0);
      hash = 97 * hash + (this.codigoPerfil != null ? this.codigoPerfil.hashCode() : 0);
      hash = 97 * hash + (this.codigoProveedor != null ? this.codigoProveedor.hashCode() : 0);
      hash = 97 * hash + (this.key != null ? this.key.hashCode() : 0);
      return hash;
   }

   @Override
   public boolean equals(Object obj) {
      if (obj == null) {
         return false;
      }
      if (getClass() != obj.getClass()) {
         return false;
      }
      final AppCacheKey other = (AppCacheKey) obj;
      if ((this.codigoUsuario == null) ? (other.codigoUsuario != null) : !this.codigoUsuario.equals(other.codigoUsuario)) {
         return false;
      }
      if ((this.codigoPerfil == null) ? (other.codigoPerfil != null) : !this.codigoPerfil.equals(other.codigoPerfil)) {
         return false;
      }
      if ((this.codigoProveedor == null) ? (other.codigoProveedor != null) : !this.codigoProveedor.equals(other.codigoProveedor)) {
         return false;
      }
      if ((this.key == null) ? (other.key != null) : !this.key.equals(other.key)) {
         return false;
      }
      return true;
   }

}
